package es.ucm.fdi.healthpred.controlador.utils.trace;

import java.text.SimpleDateFormat;
import java.util.Calendar;

/**
 * Generador de fechas usando el patr&oacute;n <i>Singleton</i>.
 * 
 * @since 1.0
 * 
 * @version 1.0
 * 
 * @author &Aacute;lvaro G&oacute;mez Porris
 * @author V&iacute;ctor L&oacute;pez Monte
 * @author Carlos Rodr&iacute;guez Colliga
 * 
 */
public class SingletonDateGenerator {

	private static SingletonDateGenerator _uniqueInstance = null;
	private Calendar currentDate = null;
	private String fecha = null;

	/**
	 * @return La instancia &uacute;nica.
	 */
	public static SingletonDateGenerator getInstance() {
		if (_uniqueInstance == null) {
			_uniqueInstance = new SingletonDateGenerator();
		}
		return _uniqueInstance;
	}

	/**
	 * @return La cadena que representa la fecha actual.
	 */
	public String getcurrentDate() {
		currentDate = Calendar.getInstance();
		fecha = currentDate.getTime().toString();
		return fecha;
	}

	/**
	 * @param p_format
	 *            Formato de fecha.
	 * @return La fecha con el formato de entrada.
	 */
	public String getdateFormat(String p_format) {
		currentDate = Calendar.getInstance();
		SimpleDateFormat formatDate = new SimpleDateFormat(p_format);
		fecha = formatDate.format(currentDate.getTime());
		return fecha;
	}

	/**
	 * @return El a&ntilde;o representado con dos d&iacute;gitos.
	 */
	public int getYearYY() {
		currentDate = Calendar.getInstance();
		int YYYY = currentDate.get(Calendar.YEAR);
		int YY = Integer.parseInt((String.valueOf(YYYY).substring(1, 4)));
		return YY;
	}

	/**
	 * @return El a&ntilde;o representado con cuatro d&iacute;gitos.
	 */
	public int getYearYYYY() {
		currentDate = Calendar.getInstance();
		int YYYY = currentDate.get(Calendar.YEAR);
		return YYYY;
	}
}
